ひとりNavigation API Advent Calendar 14日目
https://gyazo.com/0ef69b0be101249a730edf0fc4497afc
主な変更点
code:js
window.addEventListener("popstate", this.popStateHandler);
document.addEventListener("click", this.clickHandler);
code:js
navigation.addEventListener("navigate", this.navigateHandler);
2. navigateイベントの活用
code:javascript
navigation.addEventListener("navigate", (event) => {
event.intercept({
handler: async () => {
this.handleRoute(url.pathname);
},
});
});
intercept()メソッドを活用
hashChangeやdownloadRequestも簡単にフィルタリング可能
code:js
if (!event.canIntercept || event.hashChange || event.downloadRequest) {
return;
}
pushStateでの履歴管理を廃止しnavigateでの切り替えを実行 code:javascript
// History API版
window.history.pushState({}, "", path);
this.handleRoute(path);
code:js
// Navigation API版
navigation.navigate(path);